home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO018.dsk / BOOTABLE.bas < prev    next >
BASIC Source File  |  2012-02-16  |  3KB  |  69 lines

  1. 100  REM program to make
  2. 110  REM a bootable disk.
  3. 120  REM 
  4. 130  REM by Keith Falkner
  5. 140  REM 
  6. 150  PRINT  CHR$(21): TEXT : HOME 
  7. 160  INVERSE : PRINT "BOOTABLE";: NORMAL 
  8. 170  PRINT " - makes a disk able to boot."
  9. 180  PRINT : POKE 34,2
  10. 190  LOMEM:  PEEK(116) *256 -6144
  11. 200 A =  PEEK(175) +256 * PEEK(176)
  12. 210 W =  PEEK(105) +256 * PEEK(106) -A
  13. 220 FP$ = "PRODOS"
  14. 230 FB$ = "BASIC.SYSTEM"
  15. 240  PRINT : PRINT "I can copy the files "FP$
  16. 250  PRINT "and "FB$
  17. 260  PRINT "from a disk which contains them,"
  18. 270  PRINT "to a disk which needs those files,"
  19. 280  PRINT "so that the target disk can 'boot'."
  20. 290  PRINT : PRINT "If you want to do this,"
  21. 300  PRINT "put a bootable disk in drive 1."
  22. 310  PRINT : PRINT "Shall we proceed";
  23. 320  GOSUB 730: IF NO GOTO 710
  24. 330 D$ =  CHR$(4): REM ctrl-D
  25. 340  PRINT D$"PREFIX,D1"
  26. 350  PRINT D$"PREFIX": INPUT P$
  27. 360  PRINT D$"OPEN"P$",TDIR"
  28. 370  PRINT D$"READ"P$
  29. 380  INPUT Z$,Z$,Z$
  30. 390  INPUT Z$: IF Z$ = "" GOTO 670
  31. 400  IF  ASC(Z$) =  ASC("*")  THEN Z$ =  MID$ (Z$,2)
  32. 410 F$ =  LEFT$(Z$,15)
  33. 420  IF  RIGHT$(F$,1) = " "  THEN F$ =  MID$ (F$,1, LEN(F$) -1): GOTO 420
  34. 430 S =  VAL( MID$ (Z$,63)): REM size
  35. 440  IF YP = 0  THEN  IF F$ = FP$  THEN YP = 1:SP = S
  36. 450  IF YB = 0  THEN  IF F$ = FB$  THEN YB = 1:SB = S
  37. 460  IF YP *YB = 0 GOTO 390
  38. 470  IF W <SP +SB  THEN  PRINT "OOPS! I need "SP +SB -W" more bytes of memory.": GOTO 670
  39. 480  PRINT D$"CLOSE"P$
  40. 490  PRINT D$"BLOAD"FP$",TSYS,A"A
  41. 500  PRINT D$"BLOAD"FB$",TSYS,A"A +SP
  42. 510  PRINT : PRINT : PRINT  CHR$(7)"OK, now put your disk in the same drive"
  43. 520  PRINT "and the system will be written on it."
  44. 530  PRINT : PRINT "I'm ready. Are you";
  45. 540  GOSUB 730: IF NO GOTO 710
  46. 550  PRINT D$"PREFIX,D1"
  47. 560  PRINT D$"PREFIX": INPUT N$
  48. 570  IF N$ = P$  THEN  PRINT : PRINT  CHR$(7);: INVERSE : PRINT "YOU DID NOT CHANGE DISKS!": NORMAL : GOTO 510
  49. 580  PRINT D$"CREATE"FP$",TSYS"
  50. 590  PRINT D$"BSAVE"FP$",TSYS,A"A",L"SP
  51. 600  PRINT D$"LOCK"FP$
  52. 610  PRINT D$"CREATE"FB$",TSYS"
  53. 620  PRINT D$"BSAVE"FB$",TSYS,A"A +SP",L"SB
  54. 630  PRINT D$"LOCK"FB$
  55. 640  PRINT : PRINT D$"CAT": PRINT 
  56. 650  PRINT "I did it, and I'd like to do it again!"
  57. 660 P$ = N$: GOTO 510
  58. 670  PRINT D$"CLOSE"
  59. 680  IF SP = 0  THEN  PRINT : PRINT "OOPS! no file "FP$"."
  60. 690  IF SB = 0  THEN  PRINT : PRINT "OOPS! no file "FB$"."
  61. 700  PRINT  CHR$(7)
  62. 710  PRINT : PRINT : PRINT "Finished!"
  63. 720  TEXT : VTAB 23: END 
  64. 730  PRINT "? (Y or N): ";
  65. 740  POKE 49168,0: GET K$
  66. 750 YES = (K$ = "y") +(K$ = "Y")
  67. 760 NO = (K$ = "n") +(K$ = "N")
  68. 770  IF NO = YES  THEN  PRINT  CHR$(7);: GOTO 740
  69. 780  PRINT K$: RETURN